/*
 * Copyright 2002-2006 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.tigris.jasmincc;

import org.tigris.mappedlexer.*;

/**
 * The bahaviours shared by all production parsing units and some of the
 * symbols.
 * 
 * @author Sam Huang
 * 
 */
public interface Production {
	char SYM_LEFT_BRACE_CHAR = '{';

	char SYM_LEFT_ROUND_BRACE_CHAR = '(';

	char SYM_LEFT_TRIANGLE_CHAR = '<';

	String SYM_LEFT_BRACE = "{";

	String SYM_RIGHT_BRACE = "}";

	String SYM_EQUAL = "=";

	String SYM_COMMA = ",";

	String SYM_SHARP = "#";

	String SYM_SEMMICOLON = ";";

	String SYM_COLON = ":";

	String SYM_QUOTATION = "\"";

	String SYM_VERTICAL_LINE = "|";

	String SYM_LEFT_ROUND_BRACE = "(";

	String SYM_RIGHT_ROUND_BRACE = ")";

	String SYM_LEFT_SQURE = "[";

	String SYM_RIGHT_SQURE = "]";

	String SYM_LEFT_TRIANGLE = "<";

	String SYM_RIGHT_TRIANGLE = ">";

	String SYM_UNDER_SCORE = "_";

	/* JasminCC reserved keywords start here */

	String KW_NAMESPACE = "namespace";

	String KW_INCLUDE = "include";

	String KW_JAVA = "java";

	String KW_GRAMMAR = "grammar";

	String KW_DIALECTOF = "dialectof";

	String KW_TEMPLATED = "templated";

	/* JavaCC reserved keywords start here */

	String JAVACC_TOKEN = "TOKEN";

	String JAVACC_OPTIONS = "options";

	String JAVACC_SKIP = "SKIP";

	String JAVACC_MORE = "MORE";

	String JAVACC_SPECIAL_TOKEN = "SPECIAL_TOKEN";

	String JAVACC_TOKEN_MGR_DECLS = "TOKEN_MGR_DECLS";

	String JAVACC_PARSER_BEGIN = "PARSER_BEGIN";

	String JAVACC_PARSER_END = "PARSER_END";

	String JAVACC_THROWS = "throws";

	String JAVACC_LOOKAHEAD = "LOOKAHEAD";

	String JAVACC_JAVACODE = "JAVACODE";

	String JAVACC_EOF = "EOF";

	String JAVA_IMPORT = "import";

	String JAVA_METHOD_MAIN = "main";

	void setLexer(MappedLexer lexer);

	void parse() throws Exception;
}
